1. Field of the Invention
The present invention pertains to networked computer systems concurrently sharing an application. More particularly, this invention relates to a non-intrusive synchronized cursor shared among a number of networked computer systems without requiring a central database or shared memory that allow concurrent execution of multiple copies of applications.
2. Description of the Related Art
Industries that manufacture motor vehicles, airplanes, and other complex equipment typically require designers and engineers to work concurrently on the same design. The ability to work concurrently on the same design allows multiple users to collaborate on design changes in real-time, thus reducing overall design time and improving the quality of the final designed product.
With the advance of computer technologies, computer systems allow designers and engineers to electronically capture and manipulate multidimensional design image/graphics. The computer software that electronically captures, displays and manipulates images or graphics displayed on a computer screen is referred to generally as an application. In order for more than one user to view or work on the same electronically captured graphics or image at the same time regardless of the users' physical locations, the users' computer systems are connected together as a network and the application is shared by each user's system concurrently. The shared application should provide concurrent and consistent views (windows) of the same graphics in real time at each use's system.
Existing shared applications are based on two general architectures. The two general architectures are referred to as a centralized architecture and a replicated architecture. A centralized architecture contains only one instance (i.e., copy) of the shared application. Inputs to the application are sent to a single execution system. The application's output at the execution system is then sent to each user display. The centralized architecture provides identical views by transmitting the same protocol to each user display.
View consistency problems typically do not occur in centralized architectures since only one copy of the shared application is executed. However, centralized architectures must transfer all input and output ("I/O") data between each user site and the shared application at the execution site. This I/O data transfer increases network traffic between the user and execution sites. Because networks have limited bandwidth, one major disadvantage of the centralized shared application architecture is that only a limited number of users can use a centralized shared application architecture at the same time.
The replicated architecture executes a copy of the shared application locally at each user's system. User inputs and outputs to and from the shared application remain localized on the user's system. Replication architectures significantly reduce network traffic and have faster response times since I/O data remains localized at the users' systems. However, one disadvantage of the replication architectures is that they typically have difficulty maintaining synchronized motion views among the multiple copies of the graphic application displayed on each user's system. One reason of the difficulty in maintaining synchronized motion views is that the networked systems may have different speeds and/or system performances such that some of the systems run slower than other systems. The other reason of the difficulty in maintaining synchronized motion views is that the network typically causes delays in signal transmission.
Inconsistency of the cursor movements in a replication architecture typically causes problem in real time concurrent execution and consistent graphical views across multiple copies of a shared application. This is typically not acceptable in concurrent engineering. Concurrent engineering means concurrent team design at graphically dispersed sited. During concurrent engineering, the team members typically need to view the synchronized cursor movements and to trigger the same and concurrent operations. When the cursor movements and function triggering actions (i.e., button actions) are not synchronized in all of the systems, inconsistent display of the cursor movements and inconsistent behavior of the application will typically result.